package 最大公约数.分式化简;

import java.util.Arrays;

/**
 * TODO
 *
 * @className: fshj
 * @description: TODO
 * @author: 等什么柠檬君
 * @date: 2022-05-08 16:50
 **/
public class fshj {
    public static void main(String[] args) {
//        System.out.println(gcd(3, 2));
//        System.out.println(gcd(0, 3));
//        System.out.println(Arrays.toString(fzfm(0,2)));
//        int[] nums = {3,2,0,2};
        int[] nums = {0,0,3};
        System.out.println(Arrays.toString(fraction(nums)));
    }

    /**
     * 想复杂了 一直绕不出去了 关注点应该在粒度最小的加和上
     * 先把同分过程想清楚
     * @param cont
     * @return
     */
    public static int[] fraction(int[] cont) {

        //保存分子
        int top = 1;
        //保存分母
        int bot = cont[cont.length-1];
        for (int i = cont.length-2; i >= 0 ; --i) {
            // cont[i] + top/bot 通分 (cont[i]*bot+top)/bot
            // 通分计算新的分子分母
            int new_top = cont[i]*bot+top;
            int new_bot = bot;

            //取倒数
            top = new_bot;
            bot = new_top;
            System.out.println("新的分子"+new_top);
            System.out.println("新的分母"+new_bot);
        }
        //换输出顺序
        return new int[] {bot, top};


    }

}
